0:00 -- 0:20 Introduction
Why Julia? Interactive, but compiled Installation Help: documentation and mailing lists Interactivity: REPL, IJulia, Lighttable
I: Julia for users
0:20 -- 0:40 Basic Julia
Variables Control structures: if, while Ranges for Dictionaries
0:40 -- 1:00 Scientific computing
Vectors and matrices: Array Array comprehensions Random numbers Matlab-type notation
Basic macro use: @time
1:00 -- 1:15 BREAK
1:15 -- 1:35 Functions
Functions and methods Multiple dispatch
1:35 -- 1:55 User-defined types
Defining types Parametric types
1:55 -- 2:25 Packages
using, include, require, import Standard library Statistics DataStructures Graphics: PyPlot, GadFly The package ecosystem Profiling Tests
2:25 -- 2:40 BREAK
II: Developing in Julia
2:40 -- 3:00
Users are already developers Modules 3:00 -- 3:20
Metaprogramming Macros 3:20 -- 3:40
Interfacing with Python: the PyCall package 3:40 -- 4:00
Interfacing with C: ccall
include: Lowest-level; reads file, evaluates every expression Like C #include Needs filename in quotes
require: include + bunch of extra random useful behaviors (useful for dealing with packages)
In [1]:
help(require)
import and using: Basically just namespace operations
import x adds exactly the name x to the current namespace, referring to that module (as in Python)
using x: Just same, but also looks inside x and imports the exported names into the namespace (like import *)
Names brought in via using are readonly -- can't add methods to those names
Can add methods to any name brought in by import
using: Convenient access to everything without being able to accidentally mess with anything
import and using additionally try to load a package if the thing you're looking for can't be found; done by require
In [2]:
help(using)
In [3]:
help("using")
Unicode
Matrix multiply
Graphics
Fast for loops
Fun and educational
In [ ]: